package com.bifang.core.oplog.integration;

import com.bifang.common.vo.ModifiedFieldVO;
import com.bifang.common.vo.OplogApiDetailVO;
import com.bifang.common.vo.OplogApiQueryVO;
import com.bifang.common.vo.OplogApiVO;
import com.bifang.common.vo.OplogChangeVO;
import com.bifang.common.vo.OplogDetailVO;
import com.bifang.common.vo.OplogVO;
import com.bifang.common.vo.TableChangeLogVO;
import com.bifang.common.vo.oplog.OplogUserRemarksVO;
import com.bifang.core.dao.model.OplogFunction;
import com.github.pagehelper.PageInfo;
import java.util.List;

/** 操作日志整合类 */
public interface OplogIntegration {
    /** 保存操作日志信息 */
    Long saveOpLog(OplogVO oplogVO, Object obj, String auType, String dateType);
    /** 回退 只处理日志表 */
    void rollbackLog(Long oplogId, String rbUserId, String rbRemarks, boolean ignoreYm);
    /** 审核 */
    void finshAuth(Long oplogId, String authUserId, String authStatus, String authRemarks);
    /** 保存接口日志信息 */
    void saveApiOpLog(OplogApiVO oplogApiVO);

    /** 更新接口日志信息 */
    void updateApiOplog(OplogApiVO oplogApiVO);
    /** 保存业务变动信息 */
    Boolean saveChangeLog(TableChangeLogVO tableChangeLogVO);
    /** 获取变动信息 */
    List<OplogChangeVO> toList(Class elementType, Long oplogId, String opTable);
    /** 根据oplogId获取所有变动信息 */
    List<OplogChangeVO> getTableChange(Long oplogId);
    /** 查询请求日志信息 */
    PageInfo<OplogApiVO> getSysApiLogList(OplogApiQueryVO vo);
    /** 查询请求日志详细信息 */
    OplogApiVO getSysApiLogDetail(OplogApiDetailVO vo);
    /** 查询请求日志详细信息 */
    OplogApiVO getOplogApiDetail(String reqLogId);
    /** 根据操作日志id查询接口情况 */
    List<OplogApiVO> getOplogApiByOplogId(Long oplogId);
    /** 根据变动日志生成变动前数据 */
    void getBeforInfo(Object argument, List<ModifiedFieldVO> changList);
    /** 根据变动日志生成变动后数据 */
    void getAfterInfo(Object argument, List<ModifiedFieldVO> changList);
    /** 获取功能信息 */
    OplogFunction getFunction(String funcId);
    /** 更新用户备注 * */
    String saveOrUpdateUserRemarks(OplogUserRemarksVO vo);
    /** 根据批量总日志id获取多条日志 */
    PageInfo<OplogVO> getBatchOplog(OplogDetailVO vo);
}
